1. Field of the Invention
The present invention relates to a multi-agents cooperating method and a system which is capable of readily describing a distributed application for providing services by cooperatively performing a plurality of applications and processes in a distributing environment composed of a plurality of computers mutually connected via a network.
2. Description of a Prior Art
An agent which is an entity of computing process such as a plurality of processes for performing a computing process on a distributed environment composed of a plurality of computers mutually connected via a network provides services in response to a request for service from a certain user or other agent.
FIG. 19 of the accompanying drawings is a block diagram of a conventional multi-agents cooperating system disclosed, for example, in Japanese Patent Laid-Open No. Hei 4-77827 and Japanese Patent Laid-Open No. Hei 4-279935. In FIG. 19, an agent providing a variety of services comprises a communicating section 102 for communicating information with an other agent, a communicating definition storing section 103 which is a data base storing definitions for determining contents of information to be communicated, procedure of communication and target of communication, communicating target determining and communicating section 104 for determining contents of information to be communicated, procedure of communication and target of communication by referring to the contents of the communicating definitions storing section 103, a rule base storing definitions of manner of plan or planning, and contents of the services, and a planning and service executing section 106 for providing planning and service referring to the contents of the rule base 105.
An operation of the conventional system will now be described with reference to the drawings. FIG. 20 is a flow diagram showing a total summary of the conventional system. As shown in FIG. 20, the process in the conventional system comprises a step 201 for determining if the ordered service is accepted to execute, a step 202 for determining if the order is really entrusted or not, and a step 203 for performing requested services.
In step 201, the agent 101 estimates contents (specification) of services requested by the other agent or user and decides, if it is acceptable, to execute processing to provide the requested services. If the agent 101 desires to accept the request, it inquires conditions for the acceptance to the other agent or user. In step 202, the other agent or user estimates the conditions to accept the request returned from the agent with its particular criterion so as to determine if it actually entrusts the execution of the services. In step 203, the agent 101 executes services having been entrusted thereto.
FIG. 21 is a detailed flow diagram of step 201 for determining if it accepts requests to execute the requested services. The step 201 for determining if it accepts requests to execute the requested services comprises a step 204 for receiving specification of the service requested by the other agent or user by the agent 101, a step 205 for estimating the specification of the requested service having been received in step 204 by the agent 101, a step 206 for determining if the agent 101 desires to accept the request on the basis of the estimated result in step 205, and a step 207 for transmitting reply of desiring to accept the request when the agent 101 has decided to accept the request in step 206.
In step 204, the agent 101 receives specification of services to be executed by the communicating section 102 from the other agent or user. In step 205, the agent 101 estimates a variety of restricting conditions for executing the services by the transmitting target and communicating section 104 in accordance with the procedure and restrictions of communication defined in the communicating definition storing section 103, refers to the rule base 105 in the planning and service executing section 106, and estimates the probability of executing the service by trying to produce a plan for executing the specification of the service. In step 206, the agent 101 judges if it accepts the request to perform the service on the basis of the estimated result in step 205. As a result of the judgment, if it does not accept it, the operation terminates. In the case of accepting the request, the agent 101 transmits the conditions for executing the service to the other agent or user through the communicating section 102 in step 207.
FIG. 22 is a detailed flow diagram of step 203 for executing the service having been entrusted in FIG. 20. Step 203 for executing the entrusted service comprises step 208 for receiving messages representing to entrust the service, step 209 for entrusting partial service after communicating with an other agent if necessary for executing the entrusted service, and step 210 for executing partial service by the agent 101.
In step 208, the agent 101 receives service-entrusting information from the other agent or user having decided to entrust the service in step 202 through the communicating section 102. In step 209, the agent 101, for executing the plan produced in the planning and service executing section 106 for executing the service, its transmitting target determining and communicating section 104 communicates through the communicating section 102 in accordance with the procedures and restrictions which are defined in the communicating definition storing section 103 with the other agent capable of executing a part of the plan when required. In step 210, the service which can be processed by the agent 101 itself is executed in the planning and service executing section 106.
FIG. 23 is a block diagram of a conventional multi-agent cooperating system disclosed for example in Japanese Patent Laid-Open No. Hei 3-84652. In FIG. 23, the multi-agent cooperating system comprises a plurality of agents 111 for providing a variety of services, a user information administering section 112 for storing information from users, and a common memory 113 for communicating information among the user, agent 111 and the user information administering section 112 which use the multi-agent cooperating system.
The operation of the conventional system will now be described with reference to FIG. 23. When the user inputs a certain request to the common memory 113, any agent 111 estimates the request by referring to the contents of the user information administering section 112. When the agent 111 judges to be able to process the request, the processed result of the service held by the agent 111 is written into the common memory 113. If any competition arises due to a plurality of agents 111 trying to provide services, the competition would be resolved by eventually selecting a single service result among the competed services.
According to the conventional cooperating system and method shown in FIG. 19, however, definitions on the planning and resource division are mixedly stored in the same agent and are not processed by clearly distinguished steps. As a result, the definitions of the agent and the whole system would be complicated, and the coverage of the processing section would become difficult.
In the conventional system, it has been necessary to describe the relationship to the other agent at the portions related to the plan and communication in all of the agents. This would break the independency of the definitions of the agent, such that the extent of the system would be reduced.
Further, in the conventional system, the definitions of the cooperating operations are relative to the communicating procedure and communicating target, so as to distribute the cooperating manner to a plurality of agents. As a result, the change of the agent organization and the cooperation would be more difficult.
Since the conventional system has been composed of agents having different functions but with the same level, the definitions relating to the cooperative operations and planning in a variety of forms requested when practically applied would be complicated.
Further, in the conventional system, as the estimating criterion for accepting tasks by the agents, those having a certainly wide range of allowance such as cost and those having narrow range of allowance such as restrictions have been treated equally without any clear difference, it has been difficult to construct a system that can appropriately reply to a variety of situations and user requests.
In addition, since the conventional multi-agent cooperating system shown in FIG. 23 is composed as mentioned above, all of the agents must capture the format, contents and manner of use of the user information administering section. As a result, the composition of the whole system and the agents would become complicated. Further, it has been impossible to cope with a plurality of users.
Moreover, since the agent itself contains the definitions relative to the manner of cooperative operation to be performed with a suitable judgment of the actual situation for processing the request from the user, the amount of described contents from the agent would be enormous.
Since the same cooperative operation is repeated for the same request each time the user makes a request, approximately the same time is consumed at every request so as to cause low efficiency.
Further, since a single memory is used as a space for performing a cooperating process by a plurality of agents, the system description would be complicated and the processing efficiency would be lowered from a standpoint of effectively utilizing the services by the user in such a distributed environment as a number of computers are mutually coupled via a network.